home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 44 / Amiga Format CD44 (1999-08-26)(Future Publishing)(GB)(Track 1 of 3)[!][issue 1999-10].iso / -in_the_mag- / basics / amos / amcafupd140exa.lha / AMCAF_Examples / BigAmcafIntro.AMOS / BigAmcafIntro.amosSourceCode
AMOS Source Code  |  1996-01-19  |  41KB  |  1,439 lines

  1. ' ************************************* Commands used: 
  2. ' *                                   * Nearly every command, that are useful
  3. ' *    Big AMCAF Introduction V1.1    * for demos. 
  4. ' *      Written by Chris Hodges      *
  5. ' *                                   *
  6. ' *************************************
  7. '
  8. ' This demo needs lots of mem! Compile and start from workbench if out of
  9. ' memory.
  10. Set Buffer 40
  11. Break Off 
  12. Close Editor : Close Workbench 
  13. Hide On 
  14.  Extension_8_0EA2 "Data/AMCAFAdvert.Abk",9
  15.  Extension_8_0472 "RAM:Tempfile",9
  16. Erase 9
  17. Load "RAM:Tempfile"
  18. Kill "RAM:Tempfile"
  19.  Extension_8_0EA2 "Data/mod.4spirits",-3
  20. Reserve As Chip Work 999,40*256
  21. Set Tempras Start(999),Length(999)
  22. Amos Lock : E=Execall(-132)
  23.  Extension_8_10F2 0 : Extension_8_10C6 64 : Extension_8_10D6 15 : Extension_8_108E 3
  24. NEWAERA
  25. AMCAF
  26. ROTBOX[$8,$FFF]
  27. SPLINTERS
  28. SHADEBOBS
  29. SHADPIXELS
  30. TDSTARS
  31. PROTRACKER
  32. HAMFADE
  33. CONVGREY
  34. ROTBOX[0,$FFF]
  35. GLENZLINES
  36. PIXELWAVE
  37. FILCIRCLE
  38. ROTBOX[$808,$0]
  39. BLTCIRCLE
  40. TDCUBEGLENZ
  41. TDCUBELIGHT
  42. RAIFADE
  43. SCHWABLPIC
  44. COMMANDLIST
  45. ROTBOX[0,$448]
  46. THEEND
  47. CREDITS
  48. FINALNOTE
  49. E=Execall(-138) : Amos Unlock 
  50. CONTACT
  51. End 
  52. Procedure NEWAERA
  53.   Dim T$(3)
  54.   T$(0)="A NEW AERA HAS BROKEN!"
  55.   T$(1)="AMOS PROGRAMMING HAS NEVER BEEN SO POWERFUL!"
  56.   T$(2)="CHRIS HODGES"
  57.   T$(3)="IS PROUD TO PRESENT"
  58.   Screen Open 0,352,288,8,0
  59.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 
  60.   Screen Display 0,112,$20,352,288
  61.   Palette 0,0,0,0,0,0,0,0
  62.    Extension_8_1204 10
  63.   Gr Writing 0
  64.   Double Buffer 
  65.   Autoback 0
  66.    Extension_8_0A94 
  67.    Extension_8_0A7E 9,70
  68.    Extension_8_0BCC 0,1
  69.    Extension_8_0B92 
  70.    Extension_8_0B78 0,0
  71.    Extension_8_0AD0 
  72.   Fade 3,0,$444,$888,$FFF,0,$444,$888,$FFF
  73.   TIM=0 : TP=0
  74.   Ink 4
  75.   Repeat 
  76.      Extension_8_0AB8 184-Rnd(8),152-Rnd(8)
  77.      Extension_8_0B78 Rnd(4)-2,Rnd(4)-2
  78.     If TIM=250 or TIM=251 Then Extension_8_121C 0,2
  79.      Extension_8_0AFC 
  80.     If TIM=50 or TIM=51
  81.       Fade 3,0,$444,$888,$FFF,$F,$44F,$88F,$FFF
  82.       T$=T$(TP) : Y=144-Len(T$)/2
  83.       Do 
  84.         If Text Length(T$)<320
  85.           Text 176-Text Length(T$)/2,Y+Text Base,T$
  86.           Exit 
  87.         Else 
  88.           P=1
  89.           For A=1 To Len(T$)
  90.             If(Text Length(Left$(T$,A))<320) and(Mid$(T$,A,1)=" ")
  91.               P=A
  92.             End If 
  93.           Next 
  94.           D$=Left$(T$,P)
  95.           Text 176-Text Length(D$)/2,Y+Text Base,D$
  96.           T$=Mid$(T$,P+1)
  97.           Add Y,16
  98.         End If 
  99.       Loop 
  100.     End If 
  101.     If TIM=200
  102.       Fade 3,0,$444,$888,$FFF,0,$444,$888,$FFF
  103.     End If 
  104.     If TIM=252 Then TIM=0 : Inc TP : If TP=4 Then Fade 3
  105.     Screen Swap 
  106.     Wait Vbl 
  107.     Inc TIM
  108.   Until TP=4 and TIM>48
  109.   Screen Close 0
  110. End Proc
  111. Procedure AMCAF
  112.   Unpack 12 To 2 : Screen Hide 2
  113.   Screen Open 0,320,128,2,0
  114.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
  115.   Double Buffer 
  116.   Autoback 0
  117.   Palette 0,0
  118.   Screen Open 1,320,256,2,0
  119.   Curs Off : Flash Off : Paper 0 : Pen 1
  120.   Palette 0,0
  121.   Do 
  122.     Read X1,Y1
  123.     Exit If X1=-1
  124.     OX=X1 : OY=Y1
  125.     Do 
  126.       Read X2,Y2
  127.       Exit If X2=-1
  128.        Extension_8_1030 X1,Y1 To X2,Y2,1,-1
  129.       X1=X2 : Y1=Y2
  130.     Loop 
  131.      Extension_8_1030 X1,Y1 To OX,OY,1,-1
  132.   Loop 
  133.    Extension_8_1042 1,0
  134.    Extension_8_1258 
  135.   Wait Vbl 
  136.   Palette $FFF,0
  137.   Fade 1
  138.   Repeat 
  139.     C=Colour(0)
  140.     Colour Back C : View 
  141.   Until C=0
  142.   Wait Vbl 
  143.   Screen Open 1,320,128,32,0 : Screen Hide 1
  144.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
  145.   Screen Display 1,128,40+129,320,128
  146.   For A=0 To 31 : Colour A,0 : Next 
  147.   Screen 0
  148.   Fade 3,$8,$FFF
  149.   R1MX1=319 : R1MY1=126 : R1MX2=0 : R1MY2=0
  150.   R2MX1=319 : R2MY1=126 : R2MX2=0 : R2MY2=0
  151. '  WX=0 : WY=256 : WZ=512
  152.   WX=-1856 : WY=-672 : WZ=-2272
  153. '  ZP=160
  154.   ZP=2016
  155.   Do 
  156.      Extension_8_1234 0,0,R2MX1,R2MY1 To R2MX2+1,R2MY2+1
  157.     Add WX,16
  158.     Add WY,8
  159.     Add WZ,24
  160.     If ZP>160 Then Add ZP,-16 Else Exit 
  161. '    Add ZP,16 : If ZP>2000 Then Exit  
  162.      Extension_8_1122 0,0,ZP
  163.      Extension_8_1138 WX,WY,WZ
  164.      Extension_8_1152 
  165.     R2MX1=R1MX1 : R2MY1=R1MY1 : R2MX2=R1MX2 : R2MY2=R1MY2
  166.     R1MX1=319 : R1MY1=126 : R1MX2=0 : R1MY2=0
  167.     ST=Start(11)
  168.     Colour Back Colour(0) : View 
  169.     Do 
  170.       X1=Deek(ST) : Y1=Deek(ST+2) : Add ST,4
  171.       Exit If X1=$8000
  172.       X1= Extension_8_1178(X1,Y1,0)+160 : Y1= Extension_8_1184 +64
  173.       OX=X1 : OY=Y1
  174.       R1MX1=Max(Min(R1MX1,X1),0)
  175.       R1MY1=Max(Min(R1MY1,Y1),0)
  176.       R1MX2=Min(Max(R1MX2,X1),319)
  177.       R1MY2=Min(Max(R1MY2,Y1),126)
  178.       Do 
  179.         X2=Deek(ST) : Y2=Deek(ST+2) : Add ST,4
  180.         Exit If X2=$8000
  181.         X2= Extension_8_1178(X2,Y2,0)+160 : Y2= Extension_8_1184 +64
  182.          Extension_8_1030 X1,Y1 To X2,Y2,1,-1
  183.         R1MX1=Max(Min(R1MX1,X2),0)
  184.         R1MY1=Max(Min(R1MY1,Y2),0)
  185.         R1MX2=Min(Max(R1MX2,X2),319)
  186.         R1MY2=Min(Max(R1MY2,Y2),126)
  187.         X1=X2 : Y1=Y2
  188.       Loop 
  189.        Extension_8_1030 X1,Y1 To OX,OY,1,-1
  190.     Loop 
  191.     Colour Back Colour(0) : View 
  192.      Extension_8_1066 0,0,R1MX1,R1MY1,R1MX2+1,R1MY2+1
  193.     Screen Swap 
  194.     Colour Back Colour(0) : View 
  195.     Wait Vbl 
  196.   Loop 
  197.   Get Palette 2
  198.   Screen 2
  199.   For A=1 To 31 : Colour A,$FFF : Next 
  200.   Screen To Front 2
  201.   Screen Show 2
  202.   Fade 3 To 0
  203.   Screen 1 : Screen Show 
  204.   Palette $8,$119,$23A,$44B,$66B,$88C,$AAD,$CCE,$FFF,$ECE,$DAD,$C8C,$B6B,$A4B,$A2A,$919,$808,$917,$A16,$B24,$B33,$C64,$D95,$EC7,$FF8,$BE7,$8D5,$4D5,$3B7,$2B9,$28A,$149
  205.   ST=Start(8)
  206.    Extension_8_0F56 0
  207.    Extension_8_0F6C 5
  208.   For A=1 To Length(8)/4
  209.     If(A and 3)=0 Then Wait Vbl 
  210.      Extension_8_0F84 1,Deek(ST)+16,Deek(ST+2),1 : Add ST,4
  211.   Next 
  212. '  Show : Wait Vbl : Limit Mouse 
  213. '  Reserve As Work 8,10000*4 
  214. '  ST=Start(8) 
  215. '  Wait Key  
  216. '  For A=0 To 9999 
  217. '    Wait Vbl  
  218. '    I$=Inkey$ 
  219. '    If I$=" " Then Repeat : I$=Inkey$ : Multi Wait : Until I$<>"" 
  220. '    Exit If I$=Chr$(27) 
  221. '    OX=XM : OY=YM 
  222. '    XM=X Screen(X Mouse) : YM=Y Screen(Y Mouse) 
  223. '    If OX<>XM or OY<>YM 
  224. '      Shade Pix XM,YM 
  225. '      Shade Pix XM,YM 
  226. '      Shade Pix XM-1,YM 
  227. '      Shade Pix XM+1,YM 
  228. '      Shade Pix XM,YM-1 
  229. '      Shade Pix XM,YM+1 
  230. '      Doke ST,XM : Doke ST+2,YM : Add ST,4
  231. '  End If  
  232. '  Next  
  233. '  Bsave "dh2:Path.bin",Start(9) To ST 
  234.   Wait 50
  235.   Screen 0
  236.   For A=1 To 31 : Colour A,$8 : Next 
  237.   Screen 1
  238.   Fade 1 To 0 : Wait 16
  239.   Screen 2
  240.   Fade 1 To 0 : Wait 16
  241.   Screen Close 0
  242.   Screen Close 1
  243.   Screen Close 2
  244. Pop Proc
  245.   Data 16,8,88,8,88,32,64,32,64,248,40,248,40,32,16,32,-1,-1
  246.   Data 112,8,136,8,136,112,168,112,168,8,192,8,192,248,168,248
  247.   Data 168,144,136,144,136,248,112,248,-1,-1
  248.   Data 216,8,296,8,296,32,240,32,240,112,272,112,272,144
  249.   Data 240,144,240,224,296,224,296,248,216,248,-1,-1
  250.   Data -1,-1
  251. End Proc
  252. Procedure ROTBOX[OC,NC]
  253.   Screen Open 0,352,288,2,0
  254.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
  255.   Palette OC,NC
  256.   Screen Display 0,112,$20,352,288
  257.   Double Buffer 
  258.   Autoback 0
  259.   W=0 : Z=0
  260.   Repeat 
  261.      Extension_8_121C 0,0
  262.     Add W,8
  263.     If Z<256 Then Add Z,4
  264.     SX= Extension_8_1114(W,Z) : SY= Extension_8_1106(W,Z)
  265.      Extension_8_1030 176+SX,144+SY To 176-SY,144+SX,1,-1
  266.      Extension_8_1030 176-SY,144+SX To 176-SX,144-SY,1,-1
  267.      Extension_8_1030 176-SX,144-SY To 176+SY,144-SX,1,-1
  268.      Extension_8_1030 176+SY,144-SX To 176+SX,144+SY,1,-1
  269.      Extension_8_1042 0,0
  270.     Screen Swap 
  271.     Wait Vbl 
  272.   'Until W=16
  273.   Until W=640
  274.   Colour Back NC : View : Wait Vbl 
  275.   Screen Close 0
  276. End Proc
  277. Procedure SPLINTERS
  278.   Unpack 13 To 1 : Screen Hide 
  279.   Screen Open 0,320,256,8,0
  280.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
  281.   For A=0 To 7 : Colour A,$FFF : Next 
  282.    Extension_8_1204 14
  283.   T$="AMCAF Effects"
  284.   Ink 1,0 : Text 160-Text Length(T$)/2,200,T$
  285.   T$="SPLINTERS IN ACTION!"
  286.   Y=100 : X=160-Len(T$)*8
  287.   For A=1 To Len(T$)
  288.     L=Asc(Mid$(T$,A,1))-32
  289.     XL=(L mod 20)*16 : YL=(L/20)*16
  290.     Screen Copy 1,XL,YL,XL+16,YL+16 To 0,X,Y
  291.     Add X,16
  292.   Next 
  293.   Double Buffer 
  294.   Autoback 0
  295.    Extension_8_0D66 
  296.    Extension_8_0DB8 0,1
  297.    Extension_8_0F2A 75
  298.   Fade 2 To 1
  299.   Y=100 : X=160-Len(T$)*8
  300.   For A=1 To Len(T$)
  301.     Colour Back Colour(0) : View 
  302.     M=Rnd(10)
  303.     If M<5 Then M=-1
  304.      Extension_8_0E62 M
  305.      Extension_8_0D8A Rnd(8)-4,Rnd(8)-4
  306.     C= Extension_8_0CF2(0,0,X,Y To X+16,Y+16)
  307.     If C>0
  308.        Extension_8_0D4E 7,C+1
  309.       Colour Back Colour(0) : View 
  310.        Extension_8_0D24 9,256
  311.        Extension_8_0D2E 0,0,X,Y To X+16,Y+16,9,1
  312.        Extension_8_0DA4 
  313.       Repeat 
  314.         Colour Back Colour(0) : View 
  315.         Screen Swap 
  316.         Wait Vbl 
  317.        Extension_8_0DEC 
  318.       Until Extension_8_0F40 =0
  319.     End If 
  320.     Add X,16
  321.   Next 
  322.   Fade 2
  323.   Repeat 
  324.     Colour Back Colour(0) : View 
  325.   Until Colour(1)=0
  326.   Screen Close 0
  327.   Screen Close 1
  328. End Proc
  329. Procedure SHADEBOBS
  330.   Screen Open 0,320,256,64,0
  331.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
  332.   For A=0 To 31 : Colour A,0 : Next 
  333.   Wait Vbl 
  334.    Extension_8_1204 14
  335.   T$="AMCAF Effects"
  336.   Ink 32,0 : Text 160-Text Length(T$)/2,200,T$
  337.    Extension_8_1204 10
  338.   T$="SHADE BOBS!"
  339.   Ink 32,0 : Text 160-Text Length(T$)/2,124,T$
  340.    Extension_8_0F6C 5
  341.    Extension_8_0F56 1
  342.   R1=0 : R2=0 : D1=1 : D2=1
  343.   XM= Extension_8_092E(160,4)
  344.   YM= Extension_8_092E(128,4)
  345.   Fade 2,$8,$119,$23A,$44B,$66B,$88C,$AAD,$CCE,$FFF,$ECE,$DAD,$C8C,$B6B,$A4B,$A2A,$919,$808,$917,$A16,$B24,$B33,$C64,$D95,$EC7,$FF8,$BE7,$8D5,$4D5,$3B7,$2B9,$28A,$149
  346.   For A=1 To 600
  347.     Colour Back Colour(0) : View 
  348.     Repeat : Until Timer : Timer=0
  349.     If Rnd(75)=0 Then D1=-D1
  350.     If Rnd(75)=0 Then D2=-D2
  351.     XM=XM+ Extension_8_1114(R1,100)
  352.     YM=YM+ Extension_8_1106(R2,100)
  353.     If XM<- Extension_8_092E(G,4) Then Add XM, Extension_8_092E(320+G*2,4)
  354.     If XM> Extension_8_092E(320+G,4) Then Add XM,- Extension_8_092E(320+G*2,4)
  355.     If YM<- Extension_8_092E(G,4) Then Add YM, Extension_8_092E(256+G*2,4)
  356.     If YM> Extension_8_092E(256+G,4) Then Add YM,- Extension_8_092E(256+G*2,4)
  357.     Add R1,Rnd(14)*D1
  358.     Add R2,Rnd(14)*D2
  359.      Extension_8_0F84 0, Extension_8_093A(XM,4), Extension_8_093A(YM,4),2
  360.      Extension_8_0F9E 0,319- Extension_8_093A(XM,4),255- Extension_8_093A(YM,4),3
  361.     If A=568 Then Fade 2
  362.   Next 
  363. End Proc
  364. Procedure SHADPIXELS
  365.   Screen Open 0,320,256,16,0
  366.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
  367.   For A=0 To 15 : Colour A,0 : Next 
  368.   Wait Vbl 
  369.    Extension_8_1204 14
  370.   T$="AMCAF Effects"
  371.   Ink 8,0 : Text 160-Text Length(T$)/2,200,T$
  372.    Extension_8_1204 10
  373.   T$="SHADE PIXELS!"
  374.   Ink 8,0 : Text 160-Text Length(T$)/2,124,T$
  375.   Fade 2,$FFF,$CCF,$AAF,$88F,$66F,$44F,$22F,$F,$884,$773,$662,$551,$440,$330,$220,$110
  376.   Wait Vbl 
  377.   B=Rnd(1023)
  378.   C=0 : A=Rnd(1023)
  379.   Timer=0
  380.   Repeat 
  381.     If(A and 31)=0 Then Inc C
  382.     Add A,6 : Add B,7
  383.     X= Extension_8_1114((A+C)/4,62)+ Extension_8_1106((A-B+C)/4,62)+159
  384.     Y= Extension_8_1106(((A+B)/2+C)/4,62)+ Extension_8_1114((B*2+C)/4,62)+127
  385.      Extension_8_126A X,Y
  386.      Extension_8_126A X+1,Y
  387.      Extension_8_126A X,Y+1
  388.      Extension_8_126A X+1,Y+1
  389.     If Timer=400 Then Fade 2
  390.     D=Colour(0)
  391.     Colour Back D : View 
  392.   Until D=0
  393.   Screen Close 0
  394. End Proc
  395. Procedure FILCIRCLE
  396.   Screen Open 1,320,256,2,0
  397.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
  398.   Palette 0,0
  399.   Wait Vbl 
  400.    Extension_8_1204 14
  401.   T$="AMCAF Commands"
  402.   Ink 1,0 : Text 160-Text Length(T$)/2,200,T$
  403.    Extension_8_1204 10
  404.   T$="FCIRCLE & FELLIPSE"
  405.   Ink 1,0 : Text 160-Text Length(T$)/2,188+Text Base,T$
  406.   Screen Open 0,320,256,4,0
  407.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
  408.   For A=0 To 31 : Colour A,0 : Next 
  409.   Double Buffer 
  410.   Autoback 0
  411.   Wait Vbl 
  412.   Dual Playfield 0,1
  413.   X1=100*4 : Y1=10*4 : SY1=0 : SX1=8 : R1=4
  414.   SR1=1
  415.   X2=200*4 : Y2=30*4 : SY2=0 : SX2=-4 : R2=20
  416.   Fade 2,$808,$F88,$FF8,$8F8,0,0,0,0,0,$FFF
  417.   TIM=0 : Timer=0
  418.   Repeat 
  419.     Colour Back Colour(0) : View 
  420.      Extension_8_1234 0,0,0,0 To 320,189
  421.     Inc TIM
  422.     If TIM=50 Then Set Pattern Rnd(34) : TIM=0
  423.     Add R1,SR1 : If R1>31 or R1<5 Then SR1=-SR1
  424.     Add X1,SX1
  425.     Add Y1,SY1
  426.     If Y1=>(188-R1)*4
  427.       Y1=(188-R1)*4
  428.       SY1=1-SY1
  429.     Else 
  430.       Inc SY1
  431.     End If 
  432.     If X1=>(319-R1)*4 or X1<=R1*4
  433.       SX1=-Sgn(SX1)*(Rnd(5)+4)
  434.       X1=Min(Max(X1,R1*4+1),(319-R1)*4-1)
  435.     End If 
  436.     R2= Extension_8_1106(X1+Y1,10)+20
  437.     Add X2,SX2
  438.     Add Y2,SY2
  439.     If Y2=>(188-R2)*4
  440.       Y2=(188-R2)*4
  441.       SY2=1-SY2
  442.     Else 
  443.       Inc SY2
  444.     End If 
  445.     If X2=>(319-(40-R2))*4 or X2<=(40-R2)*4
  446.       SX2=-Sgn(SX2)*(Rnd(5)+4)
  447.       X2=Min(Max(X2,(40-R2)*4+1),(319-(40-R2))*4-1)
  448.     End If 
  449.      Extension_8_1234 0,1,0,0 To 320,189
  450.     Colour Back Colour(0) : View 
  451.     Ink 1,2 : Extension_8_05E6 X1/4,Y1/4,R1
  452.     Ink 3,2 : Extension_8_05F8 X2/4,Y2/4,40-R2,R2
  453.     Screen Swap 
  454.     Wait Vbl 
  455.     If Timer>600 Then Fade 2,$808,$808,$808,$808,0,0,0,0,0,$808
  456.     D=Colour(9)
  457.     Colour Back D : View 
  458.   Until D=$808
  459.   Screen Close 0
  460.   Screen Close 1
  461. End Proc
  462. Procedure BLTCIRCLE
  463.   Dim V(3)
  464.   Screen Open 1,320,256,2,0 : Screen Hide 
  465.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 
  466.   Screen Open 0,320,256,16,0
  467.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 
  468.   For A=0 To 15 : Colour A,0 : Next 
  469.   Wait Vbl 
  470.    Extension_8_1204 14
  471.   T$="AMCAF Commands"
  472.   Ink 8,0 : Text 160-Text Length(T$)/2,200,T$
  473.    Extension_8_1204 10
  474.   T$="BCIRCLE"
  475.   Ink 8,0 : Text 160-Text Length(T$)/2,124,T$
  476.    Extension_8_1204 14
  477.   Double Buffer 
  478.   Autoback 0
  479.   Fade 2,0,$40,$40,$80,$40,$80,$80,$C0,$FFF,$FCF,$FCF,$F8F,$FCF,$F8F,$F8F,$F4F
  480.   WI=0 : BP=0
  481.   Timer=0 : FAD=0
  482.   Screen 1
  483.   Repeat 
  484.     Add WI,10
  485.     Add BP,1,0 To 2
  486.     For A=0 To 3
  487.       V= Extension_8_10E6(A)
  488.       If V Then V(A)=V Else V(A)=Max(V(A)-4,0)
  489.       X= Extension_8_1106(WI,A*80-120)+160
  490.       Y= Extension_8_1114(WI,A*80-120)+128
  491.       R=V(A)/2+1
  492.        Extension_8_1258 
  493.        Extension_8_1372 X,Y,R-1,0
  494.     Next 
  495.      Extension_8_1058 1,0 To 0,BP
  496.     Screen Swap 
  497.      Extension_8_121C 1,0
  498.     Wait Vbl 
  499.     If Timer>400 and FAD=0 Then FAD=1 : Screen 0 : Fade 2 : Screen 1
  500.   Until Timer>434
  501.   Screen Close 0
  502.   Screen Close 1
  503. End Proc
  504. Procedure PROTRACKER
  505.   Dim V(3)
  506.   Screen Open 0,320,256,4,0
  507.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 
  508.   Palette 0,0,0,0
  509.   Wait Vbl 
  510.    Extension_8_1204 14
  511.   T$="AMCAF Supports"
  512.   Ink 2,0 : Text 160-Text Length(T$)/2,200,T$
  513.    Extension_8_1204 10
  514.   T$="PROTRACKER-MUSIC"
  515.   Ink 2,0 : Text 160-Text Length(T$)/2,124,T$
  516.    Extension_8_1204 14
  517.   WX=0 : BMP=125 : VOL=64
  518.   Text 0,Text Base,"Speed :"
  519.   Text 0,Text Base+6,"Volume:"
  520.   Double Buffer 
  521.   Autoback 0
  522.   Fade 2,0,$FFF,$FFF,$FFF
  523.   Timer=0
  524.   Repeat 
  525.     Add WX,-16
  526.      Extension_8_1234 0,0,32,56 To 288,248
  527.      Extension_8_1122 0,0,160
  528.      Extension_8_1138 512,WX,0
  529.      Extension_8_1152 
  530.     For A=0 To 3
  531.       V= Extension_8_10E6(A)
  532.       If V Then V(A)=V Else V(A)=Max(V(A)-4,0)
  533.       X=A*40-60 : Y=40-V(A)
  534.       X1= Extension_8_1178(X-10,40,10)+160 : Y1= Extension_8_1184 +128
  535.       X2= Extension_8_1178(X+10,40,10)+160 : Y2= Extension_8_1184 +128
  536.        Extension_8_1030 X1,Y1 To X2,Y2,1,1
  537.       X3= Extension_8_1178(X+10,40,-10)+160 : Y3= Extension_8_1184 +128
  538.        Extension_8_1030 X2,Y2 To X3,Y3,1,1
  539.       X4= Extension_8_1178(X-10,40,-10)+160 : Y4= Extension_8_1184 +128
  540.        Extension_8_1030 X3,Y3 To X4,Y4,1,1
  541.       X5= Extension_8_1178(X-10,Y,10)+160 : Y5= Extension_8_1184 +128
  542.        Extension_8_1030 X4,Y4 To X1,Y1,1,1
  543.       X6= Extension_8_1178(X+10,Y,10)+160 : Y6= Extension_8_1184 +128
  544.        Extension_8_1030 X1,Y1 To X5,Y5,1,1
  545.       X7= Extension_8_1178(X+10,Y,-10)+160 : Y7= Extension_8_1184 +128
  546.        Extension_8_1030 X2,Y2 To X6,Y6,1,1
  547.       X8= Extension_8_1178(X-10,Y,-10)+160 : Y8= Extension_8_1184 +128
  548.        Extension_8_1030 X3,Y3 To X7,Y7,1,1
  549.        Extension_8_1030 X4,Y4 To X8,Y8,1,1
  550.        Extension_8_1030 X5,Y5 To X6,Y6,1,1
  551.        Extension_8_1030 X6,Y6 To X7,Y7,1,1
  552.        Extension_8_1030 X7,Y7 To X8,Y8,1,1
  553.        Extension_8_1030 X8,Y8 To X5,Y5,1,1
  554.     Next 
  555.     T=Timer
  556.     If T>127 Then VOL= Extension_8_1114((T-128)*4,16)+48 : Extension_8_10C6 VOL
  557.     If T>255 Then BMP= Extension_8_1106((T-255)*2,25)+125 : Extension_8_10F2 BMP
  558.     If T>868 Then Fade 2
  559.     Ink 1
  560.     Text 64,Text Base, Extension_8_0EC8(BMP,3)
  561.     Text 64,Text Base+6, Extension_8_0EC8(VOL,2)
  562.     Screen Swap 
  563.     Wait Vbl 
  564.   Until T>900
  565.    Extension_8_10F2 0
  566.    Extension_8_10C6 64
  567.   Screen Close 0
  568. End Proc
  569. Procedure HAMFADE
  570.   Unpack 15 To 0 : Screen Hide 
  571.   For A=128 To 0 Step -2
  572.     Screen Display 0,128,40+A,320,256-A*2
  573.     Screen Show 
  574.     Wait Vbl 
  575.   Next 
  576.   Wait 300
  577.   For A=0 To 15
  578.      Extension_8_0FBA 0
  579.     Wait Vbl 
  580.   Next 
  581.   Screen Close 0
  582. End Proc
  583. Procedure CONVGREY
  584.   Unpack 15 To 0 : Screen Hide 
  585.   Wait Vbl 
  586.   Trap Screen Open 1,320,256,16,0
  587.   If Errtrap Then Screen Close 0 : Pop Proc
  588.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
  589.   For A=0 To 15 : Colour A,A*$111 : Next 
  590.   Wait Vbl 
  591.    Extension_8_0976 0 To 1
  592.    Extension_8_1204 14
  593.   Gr Writing 0
  594.   T$="AMCAF Commands"
  595.   Ink 15,0 : Text 160-Text Length(T$)/2,200,T$
  596.    Extension_8_1204 10
  597.   T$="Convert Grey"
  598.   Ink 15,0 : Text 160-Text Length(T$)/2,124,T$
  599.   Wait 100 : Fade 2 : Wait 32
  600.   Screen Close 0
  601.   Screen Close 1
  602. End Proc
  603. Procedure TDSTARS
  604.   Screen Open 0,352,288,8,0
  605.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 
  606.   Screen Display 0,112,$20,352,288
  607.   Palette 0,0,0,0,0,0,0,0
  608.   Wait Vbl 
  609.    Extension_8_1204 14
  610.   T$="AMCAF Effects"
  611.   Ink 4,0 : Text 176-Text Length(T$)/2,208,T$
  612.    Extension_8_1204 10
  613.   T$="3D STARS"
  614.   Ink 4,0 : Text 176-Text Length(T$)/2,132,T$
  615.   Double Buffer 
  616.   Autoback 0
  617.    Extension_8_0A94 
  618.    Extension_8_0A7E 9,80
  619.    Extension_8_0BCC 0,1
  620.    Extension_8_0B78 0,0
  621.    Extension_8_0B92 
  622.    Extension_8_0AD0 
  623.   Fade 3,0,$444,$888,$FFF,$FF0,$FF4,$FF8,$FFF
  624.   TIM=0 : MD=0
  625.   Repeat 
  626.     If TIM=100 Then Inc MD : TIM=0
  627.     If MD=8 Then MD=7 : Fade 2
  628.     If MD and 1
  629.        Extension_8_0BAE 
  630.     Else 
  631.        Extension_8_0B92 
  632.     End If 
  633.     If MD and 2
  634.        Extension_8_0B78 0,5
  635.     Else 
  636.        Extension_8_0B78 Rnd(4)-2,Rnd(4)-2
  637.     End If 
  638.     If MD and 4
  639.       T=Timer*4
  640.        Extension_8_0AB8 Extension_8_1114(T,64)+160, Extension_8_1106(T,64)+128
  641.     Else 
  642.        Extension_8_0AB8 184-Rnd(8),152-Rnd(8)
  643.     End If 
  644.      Extension_8_0AFC 
  645.     Screen Swap 
  646.     Wait Vbl 
  647.     Inc TIM
  648.   Until Colour(7)=0
  649.   Screen Close 0
  650. End Proc
  651. Procedure TDCUBEGLENZ
  652.   Gosub INITPOINTS
  653.   Gosub INITSCREEN
  654.   WX=0 : WY=0 : WZ=0
  655.   S=0 : GLENZ=0
  656.   Fade 2 To 1
  657.   Screen 1
  658.   Gosub CALCCOORDS
  659.   Timer=0
  660.   Repeat 
  661.     If(Timer mod 100)=98 Then GLENZ=1-GLENZ
  662.     If Timer>568 Then Screen 0 : Fade 2 : Screen 1
  663.     Gosub DRAOBJ
  664.     Screen Swap 0
  665.     Gosub CALCCOORDS
  666.     S=1-S
  667.     Wait Vbl 
  668.   Until Timer>600
  669.   Screen Close 0
  670.   Screen Close 1
  671. Pop Proc
  672. INITPOINTS:
  673.   Read ANZP
  674.   Dim PT(ANZP,2),CM(ANZP,1)
  675.   For A=1 To ANZP
  676.     Read PT(A,0),PT(A,1),PT(A,2)
  677.   Next 
  678.   Read ANZL
  679.   Dim LC(ANZL)
  680.   For A=1 To ANZL
  681.     Read LC(A)
  682.   Next 
  683.   Dim DB(6,3,1)
  684.   For A=0 To(ANZL/4)-1
  685.     DB(A,0,0)=319 : DB(A,1,0)=255 : DB(A,2,0)=0 : DB(A,3,0)=0
  686.     DB(A,0,1)=319 : DB(A,1,1)=255 : DB(A,2,1)=0 : DB(A,3,1)=0
  687.   Next 
  688. Return 
  689. INITSCREEN:
  690.   Screen Open 1,320,256,2,0 : Screen Hide 
  691.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 
  692.   Screen Open 0,320,256,64,0 : Screen To Front 1
  693.   Curs Off : Flash Off : Paper 0 : Pen 63 : Cls 0
  694.   For A=0 To 31 : Colour A,0 : Next 
  695.   Dim LG(5)
  696.   For A=0 To 5 : LG(A)=Logbase(A) : Next 
  697.   Screen 1
  698.   Dim CL(4)
  699.   CL(0)=-$411 : CL(1)=-$141 : CL(2)=-$114 : CL(3)=$22 : CL(4)=$220
  700.   For A=0 To 31
  701.     C=$AAA
  702.     For B=0 To 4
  703.       If Extension_8_04F8(B) and A Then C= Extension_8_0EFC(C,CL(B),$0 To $FFF)
  704.     Next 
  705.     Colour A,C
  706.   Next 
  707.   Screen 0
  708.   Double Buffer 
  709.   Autoback 0
  710. Return 
  711. CALCCOORDS:
  712.    Extension_8_1122 Extension_8_1106(WZ,250), Extension_8_1106(WY,250),2100+ Extension_8_1106(WX,1900)
  713.   Add WX,9
  714.   Add WY,10
  715.   Add WZ,11
  716.    Extension_8_1138 WX,WY,WZ
  717.    Extension_8_1152 
  718.   For A=1 To ANZP
  719.     CM(A,0)= Extension_8_1178(PT(A,0),PT(A,1),PT(A,2))+160
  720.     CM(A,1)= Extension_8_1184 +128
  721.   Next 
  722. Return 
  723. DRAOBJ:
  724.   BP=0
  725.   For A=1 To ANZL Step 4
  726.     MX1=319 : MY1=255 : MX2=0 : MY2=0
  727.     X1=CM(LC(A),0) : Y1=CM(LC(A),1)
  728.     X2=CM(LC(A+1),0) : Y2=CM(LC(A+1),1)
  729.     X3=CM(LC(A+2),0) : Y3=CM(LC(A+2),1)
  730.     If GLENZ=0
  731.       C=(X3-X1)*(Y2-Y1)-(X2-X1)*(Y3-Y1)
  732.     Else 
  733.       C=-1
  734.     End If 
  735.     If C<0
  736.        Extension_8_1030 X1,Y1 To X2,Y2,1,-1
  737.       X4=CM(LC(A+3),0) : Y4=CM(LC(A+3),1)
  738.        Extension_8_1030 X2,Y2 To X3,Y3,1,-1
  739.       MX1=Max(Min(Min(Min(Min(Min(X1,MX1),X2),X3),X4),319),0)
  740.       MY1=Max(Min(Min(Min(Min(Min(Y1,MY1),Y2),Y3),Y4),255),0)
  741.        Extension_8_1030 X3,Y3 To X4,Y4,1,-1
  742.       MX2=Min(Max(Max(Max(Max(Max(X1,MX2),X2),X3),X4),0),319)
  743.       MY2=Min(Max(Max(Max(Max(Max(Y1,MY2),Y2),Y3),Y4),0),255)
  744.        Extension_8_1030 X4,Y4 To X1,Y1,1,-1
  745.       BX1=Min(MX1,DB(BP,0,S)) : BY1=Min(MY1,DB(BP,1,S))
  746.       BX2=Max(MX2,DB(BP,2,S)) : BY2=Max(MY2,DB(BP,3,S))
  747.       If BX2>BX1 and BY2>BY1
  748.          Extension_8_1078 1,0,BX1,BY1,BX2+1,BY2+1 To 0,BP
  749.       End If 
  750.       DB(BP,0,S)=MX1 : DB(BP,1,S)=MY1 : DB(BP,2,S)=MX2 : DB(BP,3,S)=MY2
  751.       If MX2>MX1 and MY2>MY1
  752.          Extension_8_1234 1,0,MX1,MY1 To MX2+1,MY2+1
  753.       End If 
  754.     Else 
  755.       If DB(BP,2,S)>DB(BP,0,S) and DB(BP,3,S)>DB(BP,1,S)
  756.          Extension_8_1234 0,BP,DB(BP,0,S),DB(BP,1,S) To DB(BP,2,S)+1,DB(BP,3,S)+1
  757.       End If 
  758.       DB(BP,0,S)=319 : DB(BP,1,S)=255 : DB(BP,2,S)=0 : DB(BP,3,S)=0
  759.     End If 
  760.     Inc BP
  761.   Next 
  762. Return 
  763. '  1_____2   
  764. ' 5/____/| 
  765. ' | |  |6| 
  766. ' |4|__|_|3  
  767. ' |/___|/
  768. ' 8    7 
  769.   Data 8
  770.   Data -100,-100,-100
  771.   Data 100,-100,-100
  772.   Data 100,-100,100
  773.   Data -100,-100,100
  774.   Data -100,100,-100
  775.   Data 100,100,-100
  776.   Data 100,100,100
  777.   Data -100,100,100
  778. ' Axi
  779.   Data 6*4
  780.   Data 1,2,6,5
  781.   Data 4,3,2,1
  782.   Data 2,3,7,6
  783.   Data 3,4,8,7
  784.   Data 4,1,5,8
  785.   Data 6,7,8,5
  786. End Proc
  787. Procedure TDCUBELIGHT
  788.   Screen Open 0,320,256,16,0
  789.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
  790.   For A=0 To 15 : Colour A,0 : Next 
  791.   Wait Vbl 
  792.    Extension_8_1204 14
  793.   T$="AMCAF Commands"
  794.   Ink 8,0 : Text 160-Text Length(T$)/2,200,T$
  795.    Extension_8_1204 10
  796.   T$="FAST BLITTER COMMANDS"
  797.   Ink 8,0 : Text 160-Text Length(T$)/2,124,T$
  798.    Extension_8_1204 14
  799.   AD=$DFF006
  800.   B=Deek(AD) : ST=Logbase(2)
  801.   For A=1 To 20*256
  802.     Add B,Deek(AD)
  803.     Doke ST,B : Add ST,2
  804.   Next 
  805.   Double Buffer 
  806.   Autoback 0
  807.   Dim C(5),NC(7)
  808.   C(0)=$F00
  809.   C(1)=$F0
  810.   C(2)=$F
  811.   C(3)=$F0F
  812.   C(4)=$FF0
  813.   C(5)=$FF
  814.   Read ANZP
  815.   Dim PT(ANZP,2),CM(ANZP,1)
  816.   For A=1 To ANZP
  817.     Read PT(A,0),PT(A,1),PT(A,2)
  818.   Next 
  819.   Read ANZL
  820.   Dim LC(ANZL)
  821.   For A=1 To ANZL
  822.     Read LC(A)
  823.   Next 
  824.   M1X1=319 : M1Y1=255 : M1X2=0 : M1Y2=0
  825.   M2X1=319 : M2Y1=255 : M2X2=0 : M2Y2=0
  826.   Fade 2,0,0,0,0,0,0,0,0,$FFF,$FFF,$FFF,$FFF,$DDD,$DDD,$DDD,$DDD
  827.   Timer=0
  828.   Repeat 
  829.      Extension_8_1234 0,0,M2X1,M2Y1 To M2X2+1,M2Y2+1
  830.     Add WX,7
  831.     Add WY,-9
  832.     Add WZ,-10
  833.     PX= Extension_8_1106(WY,250) : PY= Extension_8_1114(WZ,250) : PZ=2100+ Extension_8_1106(WX,1900)
  834.      Extension_8_1122 PX,PY,PZ
  835.      Extension_8_1138 WX,WY,WZ
  836.      Extension_8_1152 
  837.      Extension_8_1234 0,1,M2X1,M2Y1 To M2X2+1,M2Y2+1
  838.     M2X1=M1X1 : M2Y1=M1Y1 : M2X2=M1X2 : M2Y2=M1Y2
  839.     M1X1=319 : M1Y1=255 : M1X2=0 : M1Y2=0
  840.     For A=1 To ANZP
  841.       CM(A,0)= Extension_8_1178(PT(A,0),PT(A,1),PT(A,2))+160
  842.       CM(A,1)= Extension_8_1184 +128
  843.     Next 
  844.     BP=1 : FL=9
  845.     For A=1 To ANZL Step 4
  846.       X1=CM(LC(A),0) : Y1=CM(LC(A),1)
  847.       X2=CM(LC(A+1),0) : Y2=CM(LC(A+1),1)
  848.       X3=CM(LC(A+2),0) : Y3=CM(LC(A+2),1)
  849.       C=(X3-X1)*(Y2-Y1)-(X2-X1)*(Y3-Y1)
  850.       If C<0
  851.         X4=CM(LC(A+3),0) : Y4=CM(LC(A+3),1)
  852.         If BP and 1
  853.            Extension_8_1030 X1,Y1 To X2,Y2,1,-1
  854.            Extension_8_1030 X2,Y2 To X3,Y3,1,-1
  855.            Extension_8_1030 X3,Y3 To X4,Y4,1,-1
  856.            Extension_8_1030 X4,Y4 To X1,Y1,1,-1
  857.         End If 
  858.         M1X2=Min(Max(Max(Max(Max(Max(X1,M1X2),X2),X3),X4),0),319)
  859.         M1Y2=Min(Max(Max(Max(Max(Max(Y1,M1Y2),Y2),Y3),Y4),0),255)
  860.         M1X1=Max(Min(Min(Min(Min(Min(X1,M1X1),X2),X3),X4),319),0)
  861.         M1Y1=Max(Min(Min(Min(Min(Min(Y1,M1Y1),Y2),Y3),Y4),255),0)
  862.         If BP and 2
  863.            Extension_8_1030 X1,Y1 To X2,Y2,2,-2
  864.            Extension_8_1030 X2,Y2 To X3,Y3,2,-2
  865.            Extension_8_1030 X3,Y3 To X4,Y4,2,-2
  866.            Extension_8_1030 X4,Y4 To X1,Y1,2,-2
  867.         End If 
  868.         Z=127-Abs( Extension_8_11D4(PT(FL,0),PT(FL,1),PT(FL,2))-PZ)
  869.         C=C(FL-9)
  870.         C0= Extension_8_03B2(C(FL-9))*Z
  871.         C1= Extension_8_03C0(C(FL-9))*Z
  872.         C2= Extension_8_03D0(C(FL-9))*Z
  873.         NC(BP)= Extension_8_0A0E(C0/128,C1/128,C2/128)
  874.         NC(BP+4)= Extension_8_0EFC(NC(BP),-$222,0 To $FFF)
  875.         Inc BP
  876.         Exit If BP=4
  877.       End If 
  878.       Inc FL
  879.     Next 
  880.      Extension_8_1066 0,0,M1X1,M1Y1,M1X2+1,M1Y2+1
  881.      Extension_8_1066 0,1,M1X1,M1Y1,M1X2+1,M1Y2+1
  882.     If Extension_8_060E >68000 Then Extension_8_1042 0,2
  883.     Screen Swap 
  884.     For A=1 To 7 : Colour A,NC(A) : Next 
  885.     Wait Vbl 
  886.     If Timer>768 Then Fade 2
  887.   Until Timer>800
  888.   Screen Close 0
  889. Pop Proc
  890. '  1_____2   
  891. ' 5/____/| 
  892. ' | |  |6| 
  893. ' |4|__|_|3  
  894. ' |/___|/
  895. ' 8    7 
  896.   Data 14
  897.   Data -100,-100,-100
  898.   Data 100,-100,-100
  899.   Data 100,-100,100
  900.   Data -100,-100,100
  901.   Data -100,100,-100
  902.   Data 100,100,-100
  903.   Data 100,100,100
  904.   Data -100,100,100
  905.   Data 0,126,0
  906.   Data -126,0,0
  907.   Data 0,0,126
  908.   Data 126,0,0
  909.   Data 0,126,0
  910.   Data 0,0,-126
  911. ' Axi
  912.   Data 6*4
  913.   Data 1,2,6,5
  914.   Data 4,3,2,1
  915.   Data 2,3,7,6
  916.   Data 3,4,8,7
  917.   Data 4,1,5,8
  918.   Data 6,7,8,5
  919. End Proc
  920. Procedure GLENZLINES
  921.   Screen Open 0,320,256,16,0
  922.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
  923.   For A=0 To 15 : Colour A,$FFF : Next 
  924.   Wait Vbl 
  925.    Extension_8_1204 14
  926.   T$="AMCAF Commands"
  927.   Ink 8,0 : Text 160-Text Length(T$)/2,200,T$
  928.    Extension_8_1204 10
  929.   T$="TURBO DRAW"
  930.   Ink 8,0 : Text 160-Text Length(T$)/2,124,T$
  931.    Extension_8_1204 14
  932.   Fade 3,0,$444,$444,$888,$444,$888,$888,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF
  933.   W=0 : BP=0
  934.   EFF=1 : TIM=0
  935.   Repeat 
  936.     Add BP,1,0 To 2
  937.      Extension_8_121C 0,BP
  938.     P=0
  939.     Inc TIM : If TIM=200 Then P=EFF+1 : TIM=0
  940.     If P=2
  941.       Palette $FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF
  942.       Fade 3,0,$884,$884,$CC8,$884,$CC8,$CC8,$FFF
  943.       EFF=2
  944.     End If 
  945.     If P=3
  946.       Palette $FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF
  947.       Fade 3,0,$844,$844,$C88,$844,$C88,$C88,$FFF
  948.       EFF=3
  949.     End If 
  950.     If P=4
  951.       Palette $FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF
  952.       Fade 3,0,$484,$484,$8C8,$484,$8C8,$8C8,$FFF
  953.       EFF=4
  954.     End If 
  955.     If P=5
  956.       Palette $FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF
  957.       Fade 3,0,$448,$448,$88C,$448,$88C,$88C,$FFF
  958.       EFF=5
  959.     End If 
  960.     If P=6 Then Fade 3
  961.     Exit If P=$FF
  962.     If EFF=1
  963.       Add W,16
  964.       Add Z,2 : If Z>31 : Z=0 : Add W,-64 : End If 
  965.       ZZ=Z+32 : WW=W
  966.       For A=0 To 5
  967.         SX= Extension_8_1114(WW,ZZ) : SY= Extension_8_1106(WW,ZZ)
  968.         Add ZZ,32 : Add WW,64
  969.          Extension_8_1030 160+SX,128+SY To 160-SY,128+SX,7, Extension_8_04F8(BP)
  970.          Extension_8_1030 160-SY,128+SX To 160-SX,128-SY,7, Extension_8_04F8(BP)
  971.          Extension_8_1030 160-SX,128-SY To 160+SY,128-SX,7, Extension_8_04F8(BP)
  972.          Extension_8_1030 160+SY,128-SX To 160+SX,128+SY,7, Extension_8_04F8(BP)
  973.       Next 
  974.     End If 
  975.     If EFF=2
  976.       Add W,16
  977.       Add Z,2 : If Z>31 : Z=0 : Add W,-32 : End If 
  978.       ZZ=Z+32 : WW=W
  979.       For A=0 To 5
  980.         SX1= Extension_8_1114(WW,ZZ)+160 : SY1= Extension_8_1106(WW,ZZ)+128
  981.         SX2= Extension_8_1114(WW+341,ZZ)+160 : SY2= Extension_8_1106(WW+341,ZZ)+128
  982.         SX3= Extension_8_1114(WW+682,ZZ)+160 : SY3= Extension_8_1106(WW+682,ZZ)+128
  983.         Add ZZ,32 : Add WW,32
  984.          Extension_8_1030 SX1,SY1 To SX2,SY2,7, Extension_8_04F8(BP)
  985.          Extension_8_1030 SX2,SY2 To SX3,SY3,7, Extension_8_04F8(BP)
  986.          Extension_8_1030 SX3,SY3 To SX1,SY1,7, Extension_8_04F8(BP)
  987.       Next 
  988.     End If 
  989.     If EFF>2
  990.       Add W,12 : ZZ=24 : WW=W
  991.     End If 
  992.     If EFF=3
  993.       For A=0 To 5
  994.         SX1= Extension_8_1114(WW,ZZ)+160 : SY1= Extension_8_1106(WW,ZZ)+128
  995.         SX2= Extension_8_1106(WW+341,ZZ)+160 : SY2= Extension_8_1114(WW+341,ZZ)+128
  996.         SX3= Extension_8_1114(WW+682,ZZ)+160 : SY3= Extension_8_1106(WW+682,ZZ)+128
  997.         Add ZZ,24 : Add WW,128
  998.          Extension_8_1030 SX1,SY1 To SX2,SY2,7, Extension_8_04F8(BP)
  999.          Extension_8_1030 SX2,SY2 To SX3,SY3,7, Extension_8_04F8(BP)
  1000.          Extension_8_1030 SX3,SY3 To SX1,SY1,7, Extension_8_04F8(BP)
  1001.       Next 
  1002.     End If 
  1003.     If EFF=4
  1004.       For A=0 To 5
  1005.         SX1= Extension_8_1106(WW,ZZ)+160 : SY1= Extension_8_1106(WW,ZZ)+128
  1006.         SX2= Extension_8_1106(WW+341,ZZ)+160 : SY2= Extension_8_1114(WW+341,ZZ)+128
  1007.         SX3= Extension_8_1114(WW+682,ZZ)+160 : SY3= Extension_8_1114(WW+682,ZZ)+128
  1008.         Add ZZ,24 : Add WW,64
  1009.          Extension_8_1030 SX1,SY1 To SX2,SY2,7, Extension_8_04F8(BP)
  1010.          Extension_8_1030 SX2,SY2 To SX3,SY3,7, Extension_8_04F8(BP)
  1011.          Extension_8_1030 SX3,SY3 To SX1,SY1,7, Extension_8_04F8(BP)
  1012.       Next 
  1013.     End If 
  1014.     If EFF=5
  1015.       For A=0 To 5
  1016.         SX1= Extension_8_1114(WW,ZZ)+160 : SY1= Extension_8_1106(WW,ZZ)+128
  1017.         SX2= Extension_8_1114(WW+341,ZZ)+160 : SY2= Extension_8_1114(WW+341,ZZ)+128
  1018.         SX3= Extension_8_1106(WW+682,ZZ)+160 : SY3= Extension_8_1114(WW+682,ZZ)+128
  1019.         Add ZZ,24 : Add WW,48
  1020.          Extension_8_1030 SX1,SY1 To SX2,SY2,7, Extension_8_04F8(BP)
  1021.          Extension_8_1030 SX2,SY2 To SX3,SY3,7, Extension_8_04F8(BP)
  1022.          Extension_8_1030 SX3,SY3 To SX1,SY1,7, Extension_8_04F8(BP)
  1023.       Next 
  1024.     End If 
  1025.     Colour Back Colour(0) : View 
  1026.     Wait Vbl 
  1027.   Until Colour(7)=0
  1028.   Screen Close 0
  1029. End Proc
  1030. Procedure PIXELWAVE
  1031.   Dim SI(255),CO(255)
  1032.   For A=0 To 255
  1033.     SI(A)= Extension_8_1106(A*4,31) : CO(A)= Extension_8_1114(A*4,31)
  1034.   Next 
  1035.   Screen Open 1,320,256,2,0
  1036.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 
  1037.   Palette 0,0
  1038.   Wait Vbl 
  1039.    Extension_8_1204 14
  1040.   T$="AMCAF Commands"
  1041.   Ink 1,0 : Text 160-Text Length(T$)/2,200,T$
  1042.    Extension_8_1204 10
  1043.   T$="TURBO PLOT"
  1044.   Ink 1,0 : Text 160-Text Length(T$)/2,124,T$
  1045.   Screen Open 0,320,256,2,0
  1046.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 
  1047.   Palette 0,0,0,0,0,0,0,0,0,0
  1048.   Double Buffer 
  1049.   Autoback 0
  1050.   Wait Vbl 
  1051.   Dual Playfield 0,1
  1052.   Wait Vbl 
  1053.   Dual Priority 1,0
  1054.   Fade 2,0,$FF0,0,0,0,0,0,0,0,$FFF
  1055.   W=0
  1056.   For A=0 To 400
  1057.     Add W,5
  1058.      Extension_8_121C 0,0
  1059.      Extension_8_0346 50
  1060.     WW=W
  1061.     For Y=1 To 6
  1062.       For X=1 To 9
  1063.         Add WW,2
  1064.          Extension_8_0388 X*32+CO(WW and $FF),Y*32+SI(WW and $FF),1
  1065.       Next 
  1066.     Next 
  1067.     Screen Swap 
  1068.     Wait Vbl 
  1069.     If A=368 Then Fade 2
  1070.   Next 
  1071.   Screen Close 1
  1072.   Screen Close 0
  1073. End Proc
  1074. Procedure RAIFADE
  1075.   Screen Open 0,320,256,4,0
  1076.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 
  1077.   Palette 0,0,0,0
  1078.   Wait Vbl 
  1079.   Gr Writing 0
  1080.    Extension_8_1204 14
  1081.   T$="AMCAF Commands"
  1082.   X=160-Text Length(T$)/2
  1083.   Ink 2 : Text X-1,200,T$ : Text X+1,200,T$ : Text X,199,T$ : Text X,201,T$
  1084.   Ink 1 : Text X,200,T$
  1085.    Extension_8_1204 10
  1086.   T$="Rain Fade"
  1087.   X=160-Text Length(T$)/2
  1088.   Ink 2 : Text X-1,124,T$ : Text X+1,124,T$ : Text X,123,T$ : Text X,125,T$
  1089.   Ink 1 : Text X,124,T$
  1090.   Set Rainbow 0,0,258,"","",""
  1091.   Set Rainbow 1,0,258,"","",""
  1092.   Rainbow 0,0,38,258
  1093.   Fade 2,0,$FFF,0,0
  1094.   For C=0 To 14
  1095.     Gosub CALCRAIN
  1096.     For A=0 To 15
  1097.        Extension_8_135C 0 To 1 : View 
  1098.       Wait Vbl 
  1099.     Next 
  1100.     Wait 15
  1101.   Next 
  1102.   Fade 2
  1103.   For A=0 To 15
  1104.      Extension_8_1348 0,0 : View 
  1105.     Wait 2
  1106.   Next 
  1107.   Rainbow Del 
  1108.   Screen Close 0
  1109. Pop Proc
  1110. CALCRAIN:
  1111.   R=Rnd(63) : G=Rnd(63) : B=Rnd(63)
  1112.   RS=Rnd(3)+1 : GS=Rnd(3)+1 : BS=Rnd(3)+1
  1113.   For Y=0 To 257
  1114.     Add R,RS : Add G,GS : Add B,BS
  1115.     If R<0 Then R=0 : RS=Rnd(5)+1
  1116.     If R>63 Then R=63 : RS=-Rnd(5)-1
  1117.     If G<0 Then G=0 : GS=Rnd(5)+1
  1118.     If G>63 Then G=63 : GS=-Rnd(5)-1
  1119.     If B<0 Then B=0 : BS=Rnd(5)+1
  1120.     If B>63 Then B=63 : BS=-Rnd(5)-1
  1121.     Rain(1,Y)= Extension_8_0A0E(R/4,G/4,B/4)
  1122.   Next 
  1123. Return 
  1124. End Proc
  1125. Procedure SCHWABLPIC
  1126.   Screen Open 1,320,256,4,0
  1127.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 
  1128.   Palette 0,0,0,0
  1129.   Wait Vbl 
  1130.    Extension_8_1204 14
  1131.   T$="AMCAF Commands"
  1132.   Ink 1,0 : Text 160-Text Length(T$)/2,200,T$
  1133.   T$="This effect was made using a rainbow!"
  1134.   Ink 1,0 : Text 160-Text Length(T$)/2,170,T$
  1135.    Extension_8_1204 10
  1136.   T$="Set Rain Colour"
  1137.   Ink 1,0 : Text 160-Text Length(T$)/2,124,T$
  1138.   T$="(Enables abusage)"
  1139.   Ink 1,0 : Text 160-Text Length(T$)/2,140,T$
  1140.   Unpack 19 To 2 : Screen Hide 
  1141.   Colour 9,$FFF
  1142.   Screen Open 0,320,512,8,0
  1143.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
  1144.   Screen Display 0,128,40,320,256
  1145.   Palette 0,0,0,0,0,0,0,0,0,0
  1146.   For A=0 To 255
  1147.     Screen Copy 2,0,A,320,A+1 To 0,0,A*2
  1148.     Screen Copy 2,0,A,320,A+1 To 0,0,A*2+1
  1149.   Next 
  1150.   Fade 2 To 2
  1151.   Set Rainbow 0,0,256,"","",""
  1152.    Extension_8_1330 0,-60
  1153.   For A=0 To 255
  1154.     Rain(0,A)=Max( Extension_8_1106(A*32,2)+ Extension_8_1114(A*24,2),0)*40
  1155.   Next 
  1156.   Wait Vbl 
  1157.   Dual Playfield 0,1
  1158.   Wait Vbl 
  1159.   Dual Priority 1,0
  1160.   For Y=0 To 600
  1161.     Rainbow 0,Y mod 256,38,258
  1162.     If Y=568 Then Fade 2
  1163.     Wait Vbl 
  1164.   Next 
  1165.   Rainbow Del 
  1166.   Screen Close 0
  1167.   Screen Close 1
  1168.   Screen Close 2
  1169. End Proc
  1170. Procedure COMMANDLIST
  1171.   Screen Open 1,320,256,2,0
  1172.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 
  1173.   Palette 0,0
  1174.   Wait Vbl 
  1175.    Extension_8_1204 14
  1176.   T$="AMCAF Commands"
  1177.   Ink 1,0 : Text 160-Text Length(T$)/2,200,T$
  1178.   T$="This movement was made using a rainbow!"
  1179.   Ink 1,0 : Text 160-Text Length(T$)/2,170,T$
  1180.    Extension_8_1204 10
  1181.   T$="Set Rain Colour"
  1182.   Ink 1,0 : Text 160-Text Length(T$)/2,124,T$
  1183.   T$="(Enables abusage)"
  1184.   Ink 1,0 : Text 160-Text Length(T$)/2,140,T$
  1185.   Screen Open 0,320,1000,2,0
  1186.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 
  1187.   Screen Display 0,128,40,320,256
  1188.   Palette 0,0,0,0,0,0,0,0,0,0
  1189.   Wait Vbl 
  1190.   Dual Playfield 0,1
  1191.   Wait Vbl 
  1192.   Dual Priority 1,0
  1193.   Set Rainbow 0,1,128,"","",""
  1194.    Extension_8_1330 0,-63
  1195.    Extension_8_1204 14
  1196.   Ink 1,0
  1197.   For A=0 To 127
  1198.     B= Extension_8_1106(A*16,7)+7
  1199.     C= Extension_8_1106(A*8,7)+7
  1200.     Rain(0,A)=B+C*16
  1201.   Next 
  1202.   ST=Start(18) : X=0 : Y=256
  1203.   Repeat 
  1204.     T$=Peek$(ST,80,Chr$(10)) : Add ST,Len(T$)+1
  1205.     Text X,Y+Text Base,T$
  1206.     Add X,160 : If X=320 Then X=0 : Add Y,7
  1207.   Until Peek(ST)=35
  1208.   Y=0
  1209.   Fade 2,0,$888,0,0,0,0,0,0,0,$FFF
  1210.   Repeat 
  1211.     Rainbow 0,(Y/2) mod 128,38,259
  1212.     Screen Offset 0,0,Y
  1213.     Screen Display 0,128,40,320,Min(256,1000-Y)
  1214.     Inc Y
  1215.     Wait Vbl 
  1216.   Until Y=982
  1217.   Rainbow Del : View : Wait Vbl 
  1218.   Screen Close 0
  1219. End Proc
  1220. Procedure THEEND
  1221.   Screen Open 0,320,256,4,0
  1222.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 
  1223.   Palette $448,$448,$448,$448
  1224.   For A=0 To 3
  1225.     If A=0 Then SX=370 : T$="SORRY!"
  1226.     If A=1 Then SX=730 : T$="BUT"
  1227.     If A=2 Then SX=512 : T$="THIS"
  1228.     If A=3 Then SX=1024 : T$="IS"
  1229.     VECTEXT[0,7,SX,1536,C+1,T$]
  1230.      Extension_8_1042 0,C : Extension_8_1258 : Wait Vbl 
  1231.     If C=0 Then Fade 1,$448,$FFF,$448,$FFF Else Fade 1,$448,$448,$FFF,$FFF
  1232.     C=1-C
  1233.     Wait 16
  1234.      Extension_8_121C 0,C
  1235.   Next 
  1236.   VECTEXT[0,3,730,768,C+1,"THE"]
  1237.   VECTEXT[0,132,730,768,C+1,"END"]
  1238.    Extension_8_1042 0,C : Extension_8_1258 : Wait Vbl 
  1239.   If C=0 Then Fade 1,$448,$FFF,$448,$FFF Else Fade 1,$448,$448,$FFF,$FFF
  1240.   Wait 100
  1241.   Fade 1,$8,$8,$8,$8
  1242.   Repeat 
  1243.     Colour Back Colour(0) : View 
  1244.   Until Colour(3)=$8
  1245.   Screen Close 0
  1246. End Proc
  1247. Procedure CREDITS
  1248.   Screen Open 1,320,256,4,0
  1249.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 
  1250.   Palette $8,$8,$8,$8
  1251.   Wait Vbl 
  1252.   Screen Open 0,320,256,8,0
  1253.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 
  1254.   Palette $8,$448,$448,$888,$448,$888,$888,$CC8,0,$CC8,$CC8,$CC8
  1255.   Double Buffer 
  1256.   Autoback 0
  1257.   Wait Vbl 
  1258.   Dual Playfield 0,1
  1259.   Wait Vbl 
  1260.   Dual Priority 1,0
  1261.   BP=0 : S=4 : TX=0
  1262.   Y=20 : T$="CREDITS"
  1263.   WAI=0 : FAD=0
  1264.   Do 
  1265.      Extension_8_121C 0,BP
  1266.     If(TX<10) and(ND=0)
  1267.       VECTEXT[160-(Len(T$)*20*S)/256,Y-(S*20)/256,S,S, Extension_8_04F8(BP),T$]
  1268.        Extension_8_1066 0,BP,0,Y-20,320,Y+21
  1269.     End If 
  1270.     If S=256 Then Inc WAI Else Add S,4
  1271.     If WAI=6
  1272.       ND=6 : WAI=0 : S=4
  1273.       Inc TX
  1274.       Exit If TX=11
  1275.        Extension_8_128A 0
  1276.        Extension_8_12DC 0,BP,1,0 To 1,0
  1277.       If TX=1 : Y=100 : T$="CODING:" : End If 
  1278.       If TX=2 : Y=170 : T$="CHRIS" : End If 
  1279.       If TX=3 : Y=220 : T$="HODGES" : End If 
  1280.       If TX=4 : Y=100 : T$="MUSIC:" : End If 
  1281.       If TX=5 : Y=170 : T$="NEURO-" : End If 
  1282.       If TX=6 : Y=220 : T$="DANCER" : End If 
  1283.       If TX=7 : Y=100 : T$="GFX:" : End If 
  1284.       If TX=8 : Y=170 : T$="CHRIS" : End If 
  1285.       If TX=9 : Y=220 : T$="HODGES" : End If 
  1286.     End If 
  1287.     If ND
  1288.       Dec ND
  1289.       If(TX<10) and(ND=0)
  1290.          Extension_8_12A4 0,Y-20 To 320,Y+21
  1291.          Extension_8_12B2 1,0 To 1,1
  1292.          Extension_8_1234 1,0,0,Y-20 To 320,Y+21
  1293.         Dual Priority 0,1
  1294.         Fade 3,$8,$448,$448,$888,$448,$888,$888,$CC8,0,$CC8,$8,$8
  1295.       End If 
  1296.     End If 
  1297.     If Colour(11)=$8
  1298.        Extension_8_121C 1,1
  1299.       Palette $8,$448,$448,$888,$448,$888,$888,$CC8,0,$CC8,$CC8,$CC8
  1300.       Dual Priority 1,0
  1301.     End If 
  1302.     Add BP,1,0 To 2
  1303.      Extension_8_1258 
  1304.     Screen Swap 
  1305.     Wait Vbl 
  1306.   Loop 
  1307.   Fade 3
  1308.   Repeat 
  1309.     Colour Back Colour(0) : View 
  1310.   Until Colour(9)=0
  1311.   Screen Close 1
  1312.   Screen Close 0
  1313. End Proc
  1314. Procedure FINALNOTE
  1315.   Screen Open 0,320,256,16,0
  1316.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
  1317.   For A=0 To 15 : Colour A,0 : Next 
  1318.   Wait Vbl 
  1319.    Extension_8_1204 10
  1320.   T$="Final Note"
  1321.   Ink 8,0 : Text 160-Text Length(T$)/2,Text Base,T$
  1322.    Extension_8_1204 14
  1323.   Y=32+Text Base
  1324.   Do 
  1325.     Read T$
  1326.     Exit If T$=""
  1327.     Ink 8,0 : Text 160-Text Length(T$)/2,Y,T$
  1328.     Add Y,8
  1329.   Loop 
  1330.    Extension_8_0F6C 3
  1331.    Extension_8_0F56 1
  1332.   Fade 2,0,2,4,6,8,6,4,2,$777,$799,$7BB,$7DD,$7FF,$7DD,$7BB,$799
  1333.   Timer=0
  1334.   Do 
  1335.     Exit If Timer>600
  1336.      Extension_8_0F84 0,Rnd(319),Rnd(255),1
  1337.   Loop 
  1338.   Fade 2 : Wait 32
  1339.   Screen Close 0
  1340. Pop Proc
  1341.   Data "This demo has been developped during"
  1342.   Data "about two weeks... the source code is"
  1343.   Data "included in the full amcaf-packet."
  1344.   Data " "
  1345.   Data "Note that it is a single file intro,"
  1346.   Data "and although it uses two normal text-"
  1347.   Data "fonts, these are loaded directly from"
  1348.   Data "banks and so diskfont.library is not"
  1349.   Data "required."
  1350.   Data " "
  1351.   Data "The Amcaf-Extension was coded in"
  1352.   Data "about one year of hard work :)"
  1353.   Data "I've encountered serveral problems"
  1354.   Data "which appeared along with the code"
  1355.   Data "becoming greater than 32 KB,"
  1356.   Data "but finally, here it is!!!"
  1357.   Data " "
  1358.   Data "Technical data of this intro:"
  1359.   Data "Text length :  56926 Bytes"
  1360.   Data "Bank length : 376626 Bytes"
  1361.   Data "Compiled    : 501664 Bytes"
  1362.   Data "Instructions:   1986 Lines"
  1363.   Data "Lines folded:     66 Lines"
  1364.   Data "Lines total :   1430 Lines"
  1365.   Data ""
  1366. End Proc
  1367. Procedure CONTACT
  1368.   Dim SP(7,1)
  1369.   Unpack 17 To 0 : Screen Hide 
  1370.   For A=0 To 3
  1371.     Colour 17+A*4,$F80 : Colour 18+A*4,$FC0 : Colour 19+A*4,$FF0
  1372.   Next 
  1373.   Y=-300*4 : YS=5
  1374.   Repeat 
  1375.     If Y>0 Then YS=-(YS*2)/3 : Y=0 Else Inc YS : Add Y,YS
  1376.     Screen Display 0,128,40+Y/4,320,256
  1377.     Screen Show 
  1378.     Wait Vbl 
  1379.   Until Y=0 and YS=0
  1380.   S$="SO IT'S THE END OF THIS SMALL ADVERTISMENT... "
  1381.   S$=S$+" I HOPE YOU ENJOYED IT AND WOULD LIKE TO BUY"
  1382.   S$=S$+" THE FULL VERSION OF AMCAF.    "
  1383.   S$=S$+" SPECIAL THANKS MUST GO TO NEURODANCER FOR THIS KEWL TUNE,  "
  1384.   S$=S$+" JAGUAR AND CATWEAZLE FOR BETA-TESTING AND SUGGESTIONS...  "
  1385.   S$=S$+" GREETINGS FLY TO MAGIC, LEMMING, JMS, JAGUAR, CATWEAZLE, DR.DRE,"
  1386.   S$=S$+" NEURODANCER, BUSTER BUNNY, BARTMAN, DEXTER, PINK, OMER, PRO,"
  1387.   S$=S$+" HARRY, SCHNEEMANN, MARVIN, BLACK SHADOW, SUGAR, BANDIT, BLONDY,"
  1388.   S$=S$+" BAZZ, MEDUSA... SPECIAL GREETINGS TO MY PARENTS, MY BROTHER, HANS-PETER,"
  1389.   S$=S$+" RALF, TOBIAS H., XAVER, ANDREAS, THOMAS ALIAS KRIEGSHELD, T. NOELKER, R. ROTHHARDT, MIKE, MIKE AND"
  1390.   S$=S$+" JARO...    THIS DEMO IS DEDICATED TO SUGAR... BUY AMCAF OR DIE :-))))"
  1391.   S$=S$+"          SIGNING OFF: CHRIS                "
  1392.   SP=0 : TIM=0 : BP=1
  1393.   FAD=0 : VOL=63
  1394.   Repeat 
  1395.     If FAD Then Inc FAD : VOL=Max(VOL-1,0) : Extension_8_10C6 VOL
  1396.     If FAD=128 Then Amal Off : Sprite Off 
  1397.     If FAD>128 Then Extension_8_0FBA 0
  1398.     If FAD=0 and(Mouse Key or Fire(0) or Inkey$<>"") Then FAD=1
  1399.     Inc TIM
  1400.     If TIM>13 and FAD=0
  1401.       TIM=0
  1402.       B=Asc(Mid$(S$,BP,1))
  1403.       Add BP,1,1 To Len(S$)
  1404.       SP(SP,0)=448 : SP(SP,1)=B
  1405.       Add SP,1,0 To 7
  1406.     End If 
  1407.     For A=0 To 7
  1408.       If SP(A,1)>0 Then Sprite A,SP(A,0),224,SP(A,1) : Add SP(A,0),-3
  1409.     Next 
  1410.     Wait Vbl 
  1411.   Until FAD=144
  1412.    Extension_8_10A8 
  1413.   For A=0 To 15 : Extension_8_0FBA 0 : Next 
  1414.   Screen Close 0
  1415. End Proc
  1416. Procedure VECTEXT[X,Y,SX,SY,C,T$]
  1417.   ST=Start(16)
  1418.   Add Y,(20*SY)/256
  1419.   TX=X
  1420.   For A=1 To Len(T$)
  1421.     X=TX+((A*40-24)*SX)/256
  1422.     P=Asc(Mid$(T$,A,1))-32
  1423.     AD=ST+Deek(ST+P*2)
  1424.     Do 
  1425.       X1= Extension_8_0BE4(AD) : Y1= Extension_8_0BE4(AD+2) : Add AD,4
  1426.       Exit If Deek(AD-4)=$8000
  1427.       X1=(X1*SX)/256+X : Y1=(Y1*SY)/256+Y
  1428.       OX=X1 : OY=Y1
  1429.       Do 
  1430.         X2= Extension_8_0BE4(AD) : Y2= Extension_8_0BE4(AD+2) : Add AD,4
  1431.         Exit If Deek(AD-4)=$8000
  1432.         X2=(X2*SX)/256+X : Y2=(Y2*SY)/256+Y
  1433.          Extension_8_1030 X1,Y1 To X2,Y2,C,-C
  1434.         X1=X2 : Y1=Y2
  1435.       Loop 
  1436.        Extension_8_1030 X1,Y1 To OX,OY,C,-C
  1437.     Loop 
  1438.   Next 
  1439. End Proc